package com.tianjin.design.observer;

import java.util.List;
import java.util.ArrayList;

/**
 *
 * @author tianjin
 *
 * 2023年6月1日
 * TODO 抽象主题类
 */
public abstract class Subject {

	/**
	 *  此主题绑定的所有观察者
	 */
	List<Observer> observers = new ArrayList<Observer>();


	/**
	 * 添加观察者
	 */
	public void add(Observer observer) {
		observers.add(observer);
	}

	/**
	 * 删除观察者
	 */
	public void remove(Observer observe) {
		observers.remove(observe);
	}

	/**
	 * 状态变化，通知观察者
	 */
	public void notifyObserver() {
		for(Observer observer : observers) {
			observer.update();
		}
	}
}
